Elementos tecnológicos
Actividad Sensor de infrarrojos (IR)
Elementos tecnológicos
Los programas de las actividades están en la memoria.
El resultado de la combinación de estos elementos es la maqueta.
El siguiente video es el Control de la barrera con pulsador.
Control barrera con pulsadorCódigo de programa
Variables
#include //librerias
Servo servoBarrera; //Declaracion del objeto servomotor
int pinLedRojo = 5; //Declaraciones de pines
int pinLedAmarillo = 4;
int pinLedVerde = 3;
int pulsador = 2;
int sensorIR = A5;
int pulsaValor; //Declaracion variables
int sensorValor;
Control barrera con pulsadorCódigo de programa
Configuracion
void setup()
{
pinMode(pinLedRojo, OUTPUT); //configuracion de pines
pinMode(pinLedAmarillo, OUTPUT);
pinMode(pinLedVerde, OUTPUT);
servoBarrera.attach(6);
servoBarrera.write(5); //posicion inical de la barrera
digitalWrite(pinLedRojo, 0); // Semaforo Verde
digitalWrite(pinLedAmarillo, 0);
digitalWrite(pinLedVerde, 1);
}
Control barrera con pulsadorCódigo de programa
Programa principal
void loop() //programa principal
{
pulsaValor = digitalRead(pulsador); //leemos el valor del pulsador
if (pulsaValor == 1) //preguntamos el valor del pulsador y actuamos
{
digitalWrite(pinLedVerde, 0);
digitalWrite(pinLedAmarillo, 1);
delay(3000);
digitalWrite(pinLedAmarillo, 0);
digitalWrite(pinLedRojo, 1);
delay(500);
servoBarrera.write(90); //barrera abierta
delay(10000); //semaforo en rojo 10seg
Control barrera con pulsadorCódigo de programa
sensorValor = analogRead(sensorIR); //lee valor sensor
while (sensorValor > 350) //repite la lectura
{ //porque hay un obstaculo
sensorValor = analogRead(sensorIR);
delay(10);
}
delay(2000);
servoBarrera.write(5); //barrera cerrada
delay(1000);
}
digitalWrite(pinLedRojo, 0); //semaforo en verde
digitalWrite(pinLedAmarillo, 0);
digitalWrite(pinLedVerde, 1);
delay(10);
}
Elementos tecnológicos
Módulo Bluetooth
Permite una comunicación con otro dispositivo que tenga bluetooth, como un móvil con SO Android.
Se conecta los pines
Tx y Rx del módulo
A los pines Rx y Tx de Arduino
Elementos tecnológicos
Módulo Bluetooth
La aplicación en el móvil Android utilizada es un mando con botones.
Conectado el módulo de Arduino al móvil
Al pulsar el botón central verde envía la letra ‘C’
El programa de Arduino tiene una intsrucción que escucha el puerto serie.
Si recibe la letra ‘C’ hace la misma función que el pulsador
Funcionamiento
Maqueta del proyecto con Bluetooth
Diagrama de bloques
Control barrera con BluetoothCódigo de programa
Variables
#include //librerias
Servo servoBarrera; //Declaracion del objeto servomotor
int pinLedRojo = 5; //Declaraciones de pines
int pinLedAmarillo = 4;
int pinLedVerde = 3;
int pulsador = 2;
int sensorIR = A5;
int sensorValor; //Declaracion variables
int boton; //int pulsaValor;
Control barrera con Bluetooth Código de programa
Configuracion
void setup()
{
pinMode(pinLedRojo, OUTPUT); //configuracion de pines
pinMode(pinLedAmarillo, OUTPUT);
pinMode(pinLedVerde, OUTPUT);
servoBarrera.attach(6);
servoBarrera.write(5); //posicion inical de la barrera
digitalWrite(pinLedRojo, 0); // Semaforo Verde
digitalWrite(pinLedAmarillo, 0);
digitalWrite(pinLedVerde, 1);
Serial.begin(9600);
}
Control barrera con Bluetooth Código de programa
Programa principal
void loop() //programa principal
{
if (Serial.available()) //Escuchamos el puerto de comunicaciones
{
boton = Serial.read()
{
if (boton == ‘C’) //preguntamos el valor de boton y actuamos
{
digitalWrite(pinLedVerde, 0);
digitalWrite(pinLedAmarillo, 1);
delay(3000);
digitalWrite(pinLedAmarillo, 0);
digitalWrite(pinLedRojo, 1);
delay(500);
servoBarrera.write(90); //barrera abierta
delay(10000); //semaforo en rojo 10seg
Control barrera con Bluetooth Código de programa
sensorValor = analogRead(sensorIR); //lee valor sensor
while (sensorValor > 350) //repite la lectura
{ //porque hay un obstaculo
sensorValor = analogRead(sensorIR);
delay(10);
}
delay(2000);
servoBarrera.write(5); //barrera cerrada
delay(1000);
boton = ‘ ‘;
}
digitalWrite(pinLedRojo, 0); //semaforo en verde
digitalWrite(pinLedAmarillo, 0);
digitalWrite(pinLedVerde, 1);
delay(10);
}
Página anterior | Volver al principio del trabajo | Página siguiente |